package com.aaa.qy127.controller;


import com.aaa.qy127.entity.Tree;
import com.aaa.qy127.service.MenuService;
import com.aaa.qy127.util.CodeAndMsg;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
@RequestMapping("/menu")
public class MenuController {

    @Resource(name = "menuServiceImpl")
    private MenuService menuService;

    /**
     * 获取 到所有的 父菜单 和 子菜单 的信息
     * @param request
     * @return
     */
    @RequestMapping("/getAllMenus")
    public ModelAndView getAllMenus(HttpServletRequest request){
        ModelAndView menu = menuService.getAllMenu(request);
        //System.out.println(menu);
        return menu;
    }

    /**
     * 获取所有权限菜单
     * @return
     */
    @RequestMapping("/getAllMenu")
    public List<Tree> getAllMenu(){
        List<Tree> menu = menuService.getMenu();
        return menu;
    }

    /**
     * 根据 rid 插叙该角色的所有子菜单 的mid 并存储到一个list数组中，返回到前端页面
     * @param rid
     * @return
     */
    @RequestMapping("/getAllMidByRid")
    public List getAllMidByRid(String rid){
        List allMidByRid = menuService.getAllMidByRid(rid);
        return allMidByRid;
    }

    /**
     * 按照 传回来的rid 和 所有的菜单的mid 修改 权限菜单
     * 先按照 rid 先把 权限和角色中间表中的所有跟当前rid对应的记录都删除
     * 再将传过来的数组中的所有mid和rid，再重新插入到权限和角色中间表中
     * @param rid
     * @param checkArr
     * @return
     */
    @RequestMapping("/updateMenuByRid")
    public CodeAndMsg updateMenuByRid(String rid, String checkArr){
        CodeAndMsg codeAndMsg = menuService.updateMenuByRid(rid, checkArr);
        return codeAndMsg;
    }
}
